import axios from "axios";
import router from "@/router"; // 引入 Vue Router

// 创建一个 Axios 实例
let axiosInstance = axios.create({
    baseURL: 'http://localhost:8080', // 设置基础 URL，所有请求都会以此为前缀
    // headers: {
    //     'Content-Type': 'application/json', // 指定内容类型为 JSON
    // }
});

// 添加请求拦截器
axiosInstance.interceptors.request.use(config => {
    // 从 localStorage 获取最新的 Authorization token
    const token = localStorage.getItem('Authorization');
    console.log("token", token);
    if (token) {
        // 如果 token 存在，设置到请求头
        config.headers['Authorization'] = token;
    }
    return config; // 需要返回 config，否则请求不会继续发送
}, error => {
    // 处理请求错误
    return Promise.reject(error);
});

// 添加响应拦截器
axiosInstance.interceptors.response.use(response => {
    if (response.data.code === 4200 || response.data.code === 4201) {
        console.log("token无效。。。。", response.data.code)
        // 检查后端返回的自定义状态码 4200 和 4201
        console.error("Token失效或过期，请重新登录");
        localStorage.removeItem('Authorization'); // 清除无效的 token
        router.push('/login'); // 跳转到登录页
    }
    // 直接返回响应数据
    return response;
}, error => {
    console.error("服务报错", error);
});

// 导出 Axios 实例，以便在其他模块中使用
export default axiosInstance;
